<!DOCTYPE html>
<!--suppress ALL -->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>变量的解构赋值</title>
</head>
<body>
<h5>数组：ES6 允许按照一定模式，从数组和对象中提取值，对变量进行赋值，这被称为解构
    不完全解构，即等号左边的模式，只匹配一部分的等号右边的数组。这种情况下，解构依然可以成功
    解构不成功，数组的值都会等于undefined。
    事实上，只要某种数据结构具有 Iterator 接口，都可以采用数组形式的解构赋值
</h5>
<h5>对象：解构不仅可以用于数组，还可以用于对象
    对象的解构与数组有一个重要的不同。数组的元素是按次序排列的，变量的取值由它的位置决定；
    而对象的属性没有次序，变量必须与属性同名，才能取到正确的值。
    对象赋予默认值生效的条件是:对象的属性值严格等于undefined。
    如果解构失败，对象的值等于undefined
</h5>
<script type="text/javascript">
    let {toString: s} = 123;
    console.log(s === Number.prototype.toString)
    console.log(s)

    let {toString: b} = true;
    console.log(b === Boolean.prototype.toString) // true
    console.log(b) // true

</script>
</body>
</html>